The next 700 Krivine machines

نویسندگان

  • Rémi Douence
  • Pascal Fradet
چکیده

The Krivine machine is a simple and natural implementation of the normal weak-head reduction strategy for pure λ-terms. While its original description has remained unpublished, this machine has served as a basis for many variants, extensions and theoretical studies. In this paper, we present the Krivine machine and some well-known variants in a common framework. Our framework consists of a hierarchy of intermediate languages that are subsets of the λ-calculus. The whole implementation process (compiler + abstract machine) is described via a sequence of transformations all of which express an implementation choice. We characterize the essence of the Krivine machine and locate it in the design space of functional language implementations. We show that, even within the particular class of Krivine machines, hundreds of variants can be designed. Key-words: Krivine machine, abstract machines, program transformation, compilation, functional language implementations.

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

A formal derivation of an executable Krivine machine

There is a close relationship between lambda calculi with explicit substitutions and abstract machines. Biernacka and Danvy [7] have shown how to derive several well-known abstract machines including the Krivine machine [14, 15, 21, 22], the CEK machine [19], and the Zinc machine [23]. Starting with a functional program that evaluates by repeated head reduction, each of these abstract machines ...

متن کامل

Recursive Schemes, Krivine Machines, and Collapsible Pushdown Automata

Higher-order recursive schemes offer an interesting method of approximating program semantics. The semantics of a scheme is an infinite tree labeled with built-in constants. This tree represents the meaning of the program up to the meaning of built-in constants. It is much easier to reason about properties of such trees than properties of interpreted programs. Moreover some interesting properti...

متن کامل

From Mathematics to Abstract Machine: A formal derivation of an executable Krivine machine

There is a close relationship between lambda calculi with explicit substitutions and abstract machines. Biernacka and Danvy [7] have shown how to derive several well-known abstract machines including the Krivine machine [14, 15, 21, 22], the CEK machine [19], and the Zinc machine [23]. Starting with a functional program that evaluates by repeated head reduction, each of these abstract machines ...

متن کامل

Krivine Machines and Higher-Order Schemes

We propose a new approach to analysing higher-order recursive schemes. Many results in the literature use automata models generalising pushdown automata, most notably higher-order pushdown automata with collapse (CPDA). Instead, we propose to use the Krivine machine model. Compared to CPDA, this model is closer to lambdacalculus, and incorporates nicely many invariants of computations, as for e...

متن کامل

Krivine's classical realisability from a categorical perspective

In a sequence of papers (Krivine 2001; Krivine 2003; Krivine 2009) J.-L. Krivine has introduced his notion of Classical Realizability for classical second order logic and Zermelo-Fraenkel set theory. Moreover, in more recent work (Krivine 2008) he has considered forcing constructions on top of it with the ultimate aim of providing a realizability interpretation for the axiom of choice. The aim ...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

عنوان ژورنال:
  • Higher-Order and Symbolic Computation

دوره 20  شماره 

صفحات  -

تاریخ انتشار 2007